#define _CRT_SECURE_NO_WARNINGS 1

/*
思路：
先用枚举列出a、b、c三数的所以可能性，然后用 函数（功能：判断数里是否包含 2 和 4）
初步选出符合要求的三数，进而再选出三数是从小到大排的（排除重复的情况）
*/

#include <stdio.h>
#include <stdlib.h>

int fun(int n)
{

    while (n)
    {
        if (n % 10 == 2 || n % 10 == 4)
        {
            return 0;//末位数是 2 或 4 就返回 0（否）
        }
        n = n / 10;//否则就判断往前的一位的 数，除到 0 就退出循环
    }
    return 1;//返回 1（是）
}


int main()
{
    int a, b, c;
    int count = 0;

    for (a = 1; a <= 2019; a++)
    {
        for (b = 1; b <= 2019; b++)
        {
            c = 2019 - a - b;
            //先用枚举列出a、b、c三数的所以可能性，然后选出符合要求的三数
            if (fun(a) && fun(b) && fun(c))//排除 包含数字2和4的数
            {
                if (a < b && b < c)//题目有三数不等的要求，排序可排除三数有重复的情况
                {
                    count++;
                }
            }
        }
    }
    printf("%d", count);//40785

    system("pause");
    return 0;
}